<?php

namespace Wechat;

class Utils
{
    /**
     * 计算 pay_sig 签名
     * @param string $uri 当前请求的API的uri部分，不带query_string
     * @param string $postBody HTTP POST的数据包体
     * @param string $appKey 对应环境的AppKey
     * @return string 支付请求签名 pay_sig
     */
    public static function calcPaySig(string $uri, string $postBody, string $appKey): string
    {
        $needSignMsg = $uri . '&' . $postBody;
        return hash_hmac('sha256', $needSignMsg, $appKey);
    }

    /**
     * 计算用户登录态 signature 签名
     * @param string $postBody HTTP POST的数据包体
     * @param string $sessionKey 当前用户有效的session_key
     * @return string 用户登录态签名 signature
     */
    public static function calcSignature(string $postBody, string $sessionKey): string
    {
        return hash_hmac('sha256', $postBody, $sessionKey);
    }
}
